package com.ftg.learn.lesson3;

/**
 * 练习
 *
 * @author kangjx
 * @version 1.0
 * @date 2023/6/12 上午9:14
 */
public class HomeWork05 {

    /**
     * 控制台输入2个 int  求俩数的 [0,100]最小公倍数（能整除 这俩个数的 最小的数 举例 2,3->6  4,6->12）
     *
     * @param x 整数1
     * @param y 整数2
     */
    public static void question10(int x, int y) {

//        Math 数学帮助类 pow sin max min pi
        int max = Math.max(x, y);
        for (int i = max; i <= Integer.MAX_VALUE; i++) {
            if (i % x == 0 && i % y == 0) {
                System.out.println(i);
                break;
            }
        }

    }

    /**
     * 控制台输入2个 int  求俩数的 [0,100]最小公倍数（能整除 这俩个数的 最小的数 举例 2,3->6  4,6->12）
     *
     * @param x 整数1
     * @param y 整数2
     */
    public static void question11(int x, int y) {
        int min = Math.min(x, y);
        int max = Math.max(x, y);
        int index = 1;
        for (; true; ) {
            int temp = min * index++;
            if (temp % max == 0) {
                System.out.println(temp);
                break;
            }
        }


        //do while(); do{code block}while(express);
    }

    /**
     * 控制台输入2个 int  求俩数的 [0,100]最小公倍数（能整除 这俩个数的 最小的数 举例 2,3->6  4,6->12）
     *
     * @param x 整数1
     * @param y 整数2
     */
    public static void question13(int x, int y) {
        int min = Math.min(x, y);
        int max = Math.max(x, y);
        int temp, re, index = 1;
        do {
            temp = min * index++;
            re = temp % max;
        } while (re != 0);
        System.out.println(temp);
    }

    /**
     * 控制台输入一个int 数  判断是否是 质数 (质数是指在大于1的自然数中，除了1和它本身以外不再有其他因数的自然数。)
     */
    public static void question14(int as) {

        boolean n = false;
        for (int i = 2; i < as; i++) {
            if (as % i == 0) {
                n = true;
                break;
            }
        }
        System.out.println(n ? "不是质数" : "是质数");
    }

    /**
     * 百以后没有问题
     *
     * @param as
     */
    public static void question15(int as) {
        if (as <= 1) {
            System.out.println("不能运算，1不是质数与不是合数");
        } else if (as == 2 || as == 3 || as == 5 || as == 7) {
            System.out.println("质数");
        } else {
            System.out.println(as % 2 != 0 && as % 3 != 0 && as % 5 != 0 && as % 7 != 0 ? "质数" : "不是质数");
        }
    }

    /**
     * 控制台接收3 个 int 分别是 年 月 日  求此日期是当年的第几天
     * 2023/6/12
     * 2023 平年  闰年  2 28 29
     * 1 -31
     * 3 31
     * 4 30
     * 5 31
     * 6 30
     * 7
     * <p>
     * 31
     * 831
     * 930
     * 10 31
     * 11 30
     * 12 31
     */
    public static int question16(int year, int month, int day) {

        int total = 0;
        for (int i = 1; i < month; i++) {
            if (i == 4 || i == 6 || i == 9 || i == 11) {
                total += 30;
            } else if (i == 2) {
                total += (year % 4 == 0 && year % 400 == 0) ? 29 : 28;
            } else {
                total += 31;
            }
        }
        total += day;
        return total;
    }

    public static void main(String[] args) {
        System.out.println(question16(2023, 12, 31));


    }

}
